#利用sklearn.preprocessing中适当的函数完成数据的预处理环节:定性数据的编码

# LabelEncoder编码
from sklearn.preprocessing import LabelEncoder
import pandas as pd

#初始化
lbe= LabelEncoder()
df = pd.read_excel("D:\\A_TXT文件\\sheet.xlsx", sheet_name="Sheet1")
df_encoded= pd.get_dummies(df, columns=['age', 'income', 'students', 'credit'])

#计算均值方差后直接将数据转为标准正态分布
lbe_res = lbe.fit_transform(df['age'])  
print(lbe.classes_)  #查看标签顺序
print(lbe_res)  #查看编码结果
# ['31~40' '>40' '≤30']
# [2 2 0 1 1 1 0 2 2 1 2 0 0 1 2]
# 数据说明年龄在 31~40 的编码为 0，>40 的编码为 1，<=30 的编码为 2，且对应编码个数: 0<1<2

lbe_res = lbe.fit_transform(df['income'])
print(lbe.classes_)
print(lbe_res)
# ['中' '低' '高']
# [2 2 2 0 1 1 1 0 1 0 0 0 2 0 0]

lbe_res = lbe.fit_transform(df['students'])
print(lbe.classes_)
print(lbe_res)
# ['否' '是']
# [0 0 0 0 1 1 1 0 1 1 1 0 1 0 1]

lbe_res = lbe.fit_transform(df['credit'])
print(lbe.classes_)
print(lbe_res)
# ['中' '优']
# [0 1 0 0 0 1 1 0 0 0 1 1 0 1 0]